/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package itm.bo.productos;

//~--- non-JDK imports --------------------------------------------------------
import itm.conexion.SQLServerConection;

import itm.dao.productos.ProductosDAO;

import itm.exception.ControlException;

import itm.exception.DAOException;
import itm.vo.administracion.CategoriaProductosVO;
import itm.vo.administracion.ClaseProductoVO;
import itm.vo.administracion.DestinosProductosVO;
import itm.vo.administracion.TipoEventosVO;
import itm.vo.administracion.TipoVO;
import itm.vo.administracion.TiposUsosVO;
import itm.vo.file.ArchivoVO;
import itm.vo.grupoInvestigacion.CiudadVO;
import itm.vo.grupoInvestigacion.EventoVO;
import itm.vo.grupoInvestigacion.GrupoInvestigacionVO;
import itm.vo.grupoInvestigacion.PaisVO;
import itm.vo.personas.PersonaVO;
import itm.vo.prodructos.ArchivoProductoVO;
import itm.vo.prodructos.AtributosVO;
import itm.vo.prodructos.CriteObservaProduVO;
import itm.vo.prodructos.EstadoVO;
import itm.vo.prodructos.EvaluacionProductoVO;
import itm.vo.prodructos.ProductoUsoVO;
import itm.vo.prodructos.ProductoVO;
import itm.vo.prodructos.ProductosEventoVO;
import itm.vo.prodructos.PropiedadIntelectualVO;
import itm.vo.proyectosInvestigacion.ProyectoInvestigacionVO;

//~--- JDK imports ------------------------------------------------------------

import java.sql.Connection;
import java.sql.SQLException;

import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;

/**
 *
 * @author BISA20
 */
public class ProductosBO {

    String temp = "";
    SQLServerConection conexion = new SQLServerConection();
    Connection dbConexion;
    ProductosDAO productosDAO;

    public List<ArchivoVO> consultarArchivosProducto(ProductoVO productoVO) throws ControlException {
        List<ArchivoVO> listaArchivo = new ArrayList<ArchivoVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaArchivo = productosDAO.consultarArchivosProducto(productoVO);
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaArchivo;
    }

    public String crearAtributosProducto(AtributosVO atributosVO) throws ControlException {
        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            temp = productosDAO.crearAtributosProducto(atributosVO);
        } catch (SQLException ce) {
            ce.printStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return temp;
    }

    public String modificarAtributosProducto(AtributosVO atributosVO) throws ControlException {
        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            temp = productosDAO.modificarAtributosProducto(atributosVO);
        } catch (SQLException ce) {
            ce.printStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return temp;
    }

    public List<CategoriaProductosVO> listaCategoria() throws Exception {
        List<CategoriaProductosVO> listacategoria = new ArrayList<CategoriaProductosVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listacategoria = productosDAO.listarCategoria();
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listacategoria;
    }

    public List<CriteObservaProduVO> listaCriterioProducto() throws Exception {
        List<CriteObservaProduVO> listacriterio = new ArrayList<CriteObservaProduVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listacriterio = productosDAO.listarCriteriosProducto();
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listacriterio;
    }

    public List<ClaseProductoVO> listaClase() throws Exception {
        List<ClaseProductoVO> listaclase = new ArrayList<ClaseProductoVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaclase = productosDAO.listarClase();
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaclase;
    }

    public List<ProductoVO> listaEstado() throws Exception {
        List<ProductoVO> listaEs = new ArrayList<ProductoVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaEs = productosDAO.listaEstado();
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaEs;
    }

    public List<TipoVO> listaTipo() throws Exception {
        List<TipoVO> listatipo = new ArrayList<TipoVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listatipo = productosDAO.listarTipo();
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listatipo;
    }

    public List<ProductoVO> listaTipoPropiedad() throws Exception {
        List<ProductoVO> listaPro = new ArrayList<ProductoVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaPro = productosDAO.listarTipoPropiedad();
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaPro;
    }

    public List<ProyectoInvestigacionVO> listarProyectos() throws Exception {
        List<ProyectoInvestigacionVO> listaProyectos = new ArrayList<ProyectoInvestigacionVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaProyectos = productosDAO.listarProyecto();
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaProyectos;
    }

    public List<PersonaVO> listarPersona(PersonaVO personaVO) throws Exception {
        List<PersonaVO> listaPersona = new ArrayList<PersonaVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaPersona = productosDAO.listarPersonas(personaVO);
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaPersona;
    }

    public List<PersonaVO> listarCoopropietarios() throws Exception {
        List<PersonaVO> listaPersona = new ArrayList<PersonaVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaPersona = productosDAO.listarCoopropietarios();
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaPersona;
    }

    public List<TipoEventosVO> listarTipoEventos() throws Exception {
        List<TipoEventosVO> listaTipoEventos = new ArrayList<TipoEventosVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaTipoEventos = productosDAO.listarTipoEventos();
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaTipoEventos;
    }

    public List<GrupoInvestigacionVO> ListarGrupoInv() throws Exception {
        List<GrupoInvestigacionVO> listaGrupoInvestigacion = new ArrayList<GrupoInvestigacionVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaGrupoInvestigacion = productosDAO.listarGrupoInvestigacion();
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaGrupoInvestigacion;
    }

    public List<PaisVO> ListarPais() throws Exception {
        List<PaisVO> listaPais = new ArrayList<PaisVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaPais = productosDAO.listarPaises();
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaPais;
    }

    public List<CiudadVO> listarCiudadesSegunPais(PaisVO paisVO) throws Exception {
        List<CiudadVO> listaCiudades = new ArrayList<CiudadVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaCiudades = productosDAO.listarCiudadesSegunPais(paisVO);
        } catch (Exception ex) {
            ex.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaCiudades;
    }

    public List<TiposUsosVO> ListarTipoUsos() throws Exception {
        List<TiposUsosVO> listaTipoUso = new ArrayList<TiposUsosVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaTipoUso = productosDAO.listarTipoUsos();
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaTipoUso;
    }

    public List<DestinosProductosVO> ListarDestinoProduc() throws Exception {
        List<DestinosProductosVO> listaDestino = new ArrayList<DestinosProductosVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaDestino = productosDAO.listarDestinosProduc();
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaDestino;
    }

    public int registroEventos(EventoVO eventoVO) throws Exception {
        int temp1 = 0;

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            temp1 = productosDAO.registroEventos(eventoVO);
        } catch (SQLException ce) {
            ce.printStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return temp1;
    }

    public String modificarEventos(EventoVO eventoVO, ProductoVO productoVO) throws Exception {
        String temp = "";

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            temp = productosDAO.modificarEventos(eventoVO, productoVO);
        } catch (SQLException ce) {
            ce.printStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return temp;
    }

    public String resgistroEventosProducGru(ProductoVO productoVO) throws Exception {
        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            temp = productosDAO.resgistroEventosProducGru(productoVO);
        } catch (SQLException ce) {
            ce.printStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return temp;
    }

    public String resgistroEvenProduc(ProductoVO productoVO) throws Exception {
        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            temp = productosDAO.resgistroEventosProducGru(productoVO);
        } catch (SQLException ce) {
            ce.printStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return temp;
    }

    public String resgistroEvenProductPersonas(ProductoVO productoVO) throws Exception {
        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            temp = productosDAO.resgistroEvenProductPersonas(productoVO);
        } catch (SQLException ce) {
            ce.printStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return temp;
    }

    public String resgistroUsoPersonas(ProductoUsoVO productoUsoVO) throws Exception {
        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            temp = productosDAO.resgistroUsoPersonas(productoUsoVO);
        } catch (SQLException ce) {
            ce.printStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return temp;
    }

    public String resgistroUsoGrupo(ProductoUsoVO productoUsoVO) throws Exception {
        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            temp = productosDAO.resgistroUsoGrupo(productoUsoVO);
        } catch (SQLException ce) {
            ce.printStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return temp;
    }

    public List<ProductoVO> consultarEventos() throws Exception {
        List<ProductoVO> listaProducto = new ArrayList<ProductoVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaProducto = productosDAO.consultarEventos();
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaProducto;
    }

    public ProductosEventoVO consultarEventoEspecifico(ProductosEventoVO productosEventoVO) throws Exception {
        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            productosEventoVO = productosDAO.consultarEventoEspecifico(productosEventoVO);
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return productosEventoVO;
    }

    public List<ProductosEventoVO> consultarResponsable(ProductosEventoVO productosEventoVO) throws Exception {
        List<ProductosEventoVO> listaResponsable = new ArrayList<ProductosEventoVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaResponsable = productosDAO.consultarResponsables(productosEventoVO);
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaResponsable;
    }

    public String resgistroUsosProducto(ProductoUsoVO productoUsoVO) throws Exception {
        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            temp = productosDAO.resgistroUsosProducto(productoUsoVO);
        } catch (SQLException ce) {
            ce.printStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return temp;
    }

    public String matriculaProducto(ProductoVO productoVO, ProyectoInvestigacionVO proyectoInvestigacionVO)
            throws Exception {
        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            temp = productosDAO.matriculaProducto(productoVO, proyectoInvestigacionVO);
        } catch (SQLException ce) {
            ce.printStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return temp;
    }

    public String modificarProduc(ProductoVO productoVO) throws Exception {
        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            temp = productosDAO.modificarProducto(productoVO);
        } catch (SQLException ce) {
            ce.printStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return temp;
    }

    public String modificarEstadoProduc(ProductoVO productoVO) throws Exception {
        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            temp = productosDAO.modificarEstadoProducto(productoVO);
        } catch (SQLException ce) {
            ce.printStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return temp;
    }

    public String insertarCoopropietario(PropiedadIntelectualVO propiedadIntelectualVO, ProductoVO productoVO)
            throws Exception {
        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            temp = productosDAO.insertarCoopropietario(propiedadIntelectualVO, productoVO);
        } catch (SQLException ce) {
            ce.printStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return temp;
    }

    public List<AtributosVO> listarAtributos(AtributosVO atributosVO) throws ControlException {
        List<AtributosVO> listaAtri = new ArrayList<AtributosVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaAtri = productosDAO.listarAtributos();
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaAtri;
    }

    public String insertarCriteriProdu(CriteObservaProduVO criteObservaProduVO) throws Exception {
        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            temp = productosDAO.InsertarCriterioProducto(criteObservaProduVO);
        } catch (SQLException ce) {
            ce.printStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return temp;
    }

    public String guardarArchivoProducto(ArchivoProductoVO archivoProductoVO) throws Exception {
        String resultado = "";

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            resultado = productosDAO.guardarArchivoProducto(archivoProductoVO);
        } catch (Exception ce) {
            ce.printStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return resultado;
    }

    public List<ProductoVO> consulProductoProyecto(ProyectoInvestigacionVO proyectoInvestigacionVO,
            ProductoVO productoVO)
            throws Exception {
        List<ProductoVO> listaProdu = new ArrayList<ProductoVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaProdu = productosDAO.consultarProductoProyecto(proyectoInvestigacionVO, productoVO);
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaProdu;
    }

    public List<ProductoVO> consultarProductoNombre(ProductoVO productoVO) throws Exception {
        List<ProductoVO> listaProdu = new ArrayList<ProductoVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaProdu = productosDAO.consultarProductoNombre(productoVO);
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaProdu;
    }

    public ProductoVO consultarProductoEspecifico(ProductoVO productoVO) throws Exception {
        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            productosDAO.consultarProductoEspecifico(productoVO);
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return productoVO;
    }

    public List<ProductoUsoVO> ConsultaUsos(ProductoVO productoVO) throws Exception {
        List<ProductoUsoVO> listaUsos = new ArrayList<ProductoUsoVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaUsos = productosDAO.ConsultaUsos(productoVO);
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaUsos;
    }

    public EstadoVO consultarEstadoProducto(ProductoVO productoVO) throws Exception {
        EstadoVO estadoVO = new EstadoVO();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            estadoVO = productosDAO.consultarEstadoProducto(productoVO);
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return estadoVO;
    }

    public List<AtributosVO> ConsultarAtribuProduc(ProductoVO productoVO) throws Exception {
        List<AtributosVO> listaAtribuPro = new ArrayList<AtributosVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaAtribuPro = productosDAO.ConsultaAtribuProducEspe(productoVO);
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaAtribuPro;
    }

    public List<ProductosEventoVO> ConsultarEventoAsociado(ProductoVO productoVO) throws Exception {
        List<ProductosEventoVO> listaDueñoAsoci = new ArrayList<ProductosEventoVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaDueñoAsoci = productosDAO.ConsultaEventoAsociado(productoVO);
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaDueñoAsoci;
    }

    public List<PropiedadIntelectualVO> ConsultaDueñoProduAsociado(ProductoVO productoVO) throws Exception {
        List<PropiedadIntelectualVO> listaDueñoAsoci = new ArrayList<PropiedadIntelectualVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaDueñoAsoci = productosDAO.ConsultaDueñoProduAsociado(productoVO);
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaDueñoAsoci;
    }

    public List<ProductoVO> listaProducEntrgados() throws Exception {
        List<ProductoVO> listaproductEntregado = new ArrayList<ProductoVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaproductEntregado = productosDAO.listaProducEntrgados();
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaproductEntregado;
    }

    public List<EvaluacionProductoVO> ConsultarItem(EvaluacionProductoVO evaluacionProductoVO) throws Exception {
        List<EvaluacionProductoVO> listaItem = new ArrayList<EvaluacionProductoVO>();

        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            listaItem = productosDAO.ConsultaItem(evaluacionProductoVO);
        } catch (Exception e) {
            e.getStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return listaItem;
    }

    public String aprobarProducto(ProductoVO productoVO) throws Exception {
        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            temp = productosDAO.aprobarProducto(productoVO);
        } catch (SQLException ce) {
            ce.printStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return temp;
    }

    public String rechazarProducto(EstadoVO estadoVO) throws Exception {
        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            temp = productosDAO.rechazarProducto(estadoVO);
        } catch (SQLException ce) {
            ce.printStackTrace();
        } finally {
            conexion.closeConnection(dbConexion);
        }

        return temp;
    }

    public String insertarEvaluacion(EvaluacionProductoVO evaluacionProductoVO)throws Exception {
        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            temp = productosDAO.insertarEvaluacion(evaluacionProductoVO);
            return temp;
        } catch (DAOException ex) {
            ex.printStackTrace();
            Logger.getLogger(ProductosBO.class.getName()).log(Level.SEVERE, "Error al inserta la evaluación", ex);
            throw new Exception("Error al inserta la evaluación", ex);
        }finally {
            conexion.closeConnection(dbConexion);
        }
    }

    public List<EvaluacionProductoVO> consultarItemsEvaluacion(EvaluacionProductoVO e) throws ProductoException {
        List<EvaluacionProductoVO> lista = new ArrayList<EvaluacionProductoVO>();
        try {
            dbConexion = conexion.openConnection();
            productosDAO = new ProductosDAO(dbConexion);
            lista = productosDAO.consultarCriterioProducto(e);
            for (int i = 0; i < lista.size(); i++) {
                lista.get(i).setListaItems(productosDAO.consultarItemsEvaluacion(e,lista.get(i).getIdCriterio()));
            }
            return lista;
        } catch (DAOException ex) {
            Logger.getLogger(ProductosBO.class.getName()).log(Level.SEVERE, null, ex);
            throw new ProductoException("Error: ProductosBO:consultarItemsEvaluacion", ex);
        } finally {
            conexion.closeConnection(dbConexion);
        }
    }
}
